Often a user expects a certain quality of service from his data storage system and sets targets for this performance. A user generally chooses a storage system with static performance ratings showing that the storage system has the capability to meet performance targets. But a user may have little information about the quality of service of individual storage devices and/or storage systems within his data storage system. The user may also have little information about the present quality of service of individual storage devices as it compares to past performance or the static performance ratings.
In addition, the increased use of virtualization software makes the quality of service of individual storage devices and/or storage systems increasingly difficult to ascertain. In a virtualized storage system, the host application is presented with logical units of storage capacity that may be made up of one or more storage elements or portions thereof. Where virtualization is used, users are therefore insulated from knowledge of which storage elements they are using. Nonetheless, with or without virtualization, the quality of service provided by individual storage devices and/or storage systems affects the quality of service experienced by the user.
Known monitoring tools, such as performance monitors and application software optimizers, measure on-line system performance over a relatively long-term basis—typically hours, days, weeks, or months. These tools are thus able to identify system trends by comparing the system's measured performance to its past performance in a comparable performance period. Known monitoring tools rely on existing host traffic to measure system performance. Accordingly, it may be difficult to use the information available from known tools to determine the available capacity of a system for future use. Similarly, with known monitoring tools, performance data may be unavailable if the system has been idle. Although these tools can be used to monitor a system, they typically include no feedback mechanism that would enable a monitored system to be automatically adjusted.
The lack of information about the quality of service presently available from individual storage devices and/or storage systems can be detrimental to the optimal use of a user's storage system. Sometimes users may have prioritized tasks, but lack information that enables them to determine how a low priority task may affect higher priority tasks. For example, a user may schedule a back-up task to occur when trends indicate there will be available capacity to run the back-up task without affecting the quality of service for higher priority tasks. Similarly, a user may set a parameter such that a movement of data during a migration task runs at a low speed to avoid affecting the quality of service for higher priority tasks. Making these decisions based on trends or on static performance ratings may unnecessarily reduce the network's efficiency.